/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package proyectoempresa.modelo;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.DiscriminatorColumn;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;

/**
 *
 * @author Diego
 */
@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="ClientePadre")
public class Cliente implements Serializable {
    @Id
   @Column(name = "unico_id")
    @GeneratedValue(strategy=GenerationType.AUTO)
    private   Long id;
    @Column(columnDefinition="varchar(30)",nullable=true)
    protected   Long  id_cliente=1l;
    @Column(columnDefinition="varchar(20)",nullable=true)
    protected   String nombresCliente;
     @Column(columnDefinition="varchar(20)",nullable=true)
    protected String direccion;
    @Column(columnDefinition="varchar(20)",nullable=true)
    protected String telefono;
    @Column(columnDefinition="varchar(20)",nullable=true)
    protected String cedula;

    public Cliente() {
    }
    public String getCedula() {
        return cedula;
    }

    public void setCedula(String cedula) {
        this.cedula = cedula;
    }

    public String getDireccion() {
        return direccion;
    }

    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }

    public String getNombresCliente() {
        return nombresCliente;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public void setNombresCliente(String nombresCliente) {
        this.nombresCliente = nombresCliente;
    }

    public String getTelefono() {
        return telefono;
    }

    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }

    public Long getId_cliente() {
        return id_cliente;
    }

    public void setId_cliente(Long id_cliente) {
        this.id_cliente = id_cliente;
    }


    @Override
    public String toString() {
        return "Cliente{" + "id=" + id + "nombresCliente=" + nombresCliente + "direccion=" + direccion + "telefono=" + telefono + "cedula=" + cedula + '}';
    }
     public static final int NUMERO_DE_PROVINCIAS = 24;
    String ced = "";
        public boolean validarCedula(String c) {
        ced = c.substring(0, 9) + c.substring(10);

        System.out.println(ced);
        if (!((ced.length() == 10) && ced.matches("^[0-9]{10}$"))) {
            return false;
        }
        int prov = Integer.parseInt(ced.substring(0, 2));

        if (!((prov > 0) && (prov <= NUMERO_DE_PROVINCIAS))) {
            return false;
        }
        int[] d = new int[10];
        for (int i = 0; i < d.length; i++) {
            d[i] = Integer.parseInt(ced.charAt(i) + "");
        }
        int imp = 0;
        int par = 0;
        for (int i = 0; i < d.length; i += 2) {
            d[i] = ((d[i] * 2) > 9) ? ((d[i] * 2) - 9) : (d[i] * 2);
            imp += d[i];
        }
        for (int i = 1; i < (d.length - 1); i += 2) {
            par += d[i];
        }
        int suma = imp + par;
        int d10 = Integer.parseInt(String.valueOf(suma + 10).substring(0, 1)
                + "0") - suma;
        d10 = (d10 == 10) ? 0 : d10;
        return d10 == d[9];
    }
    
}
